Don't do the popup-on-click handling for menubars. (#159931, Søren
authorMatthias Clasen <mclasen@redhat.com>
Tue, 30 Nov 2004 04:49:44 +0000 (04:49 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 30 Nov 2004 04:49:44 +0000 (04:49 +0000)
2004-11-29  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
do the popup-on-click handling for menubars.  (#159931,
Søren Sandmann)

* gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't
handle popup delay if the submenu is already mapped.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkmenuitem.c
gtk/gtkmenushell.c

index 6dd015e8d2b894b5f6342787c4c513051632e95f..e28566c89f78d98402b411912b7334d40fa5247d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-11-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
+       do the popup-on-click handling for menubars.  (#159931, 
+       Søren Sandmann)
+       
+       * gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't 
+       handle popup delay if the submenu is already mapped.    
+
 Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkcellview.h: remove gtk_cell_view_set_cell_data() declaration.
@@ -8,7 +17,7 @@ Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkfilechooserdefault.c (trap_activate_cb): Don't handle
        Enter if we are in SELECT_FOLDER or CREATE_FOLDER actions.  This
-       lets us navigate thei file system more easily.
+       lets us navigate the file system more easily.
        (gtk_file_chooser_default_should_respond): If we are in
        SELECT_FOLDER or CREATE_FOLDER modes, return TRUE if something is
        selected.
index 6dd015e8d2b894b5f6342787c4c513051632e95f..e28566c89f78d98402b411912b7334d40fa5247d 100644 (file)
@@ -1,3 +1,12 @@
+2004-11-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
+       do the popup-on-click handling for menubars.  (#159931, 
+       Søren Sandmann)
+       
+       * gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't 
+       handle popup delay if the submenu is already mapped.    
+
 Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkcellview.h: remove gtk_cell_view_set_cell_data() declaration.
@@ -8,7 +17,7 @@ Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkfilechooserdefault.c (trap_activate_cb): Don't handle
        Enter if we are in SELECT_FOLDER or CREATE_FOLDER actions.  This
-       lets us navigate thei file system more easily.
+       lets us navigate the file system more easily.
        (gtk_file_chooser_default_should_respond): If we are in
        SELECT_FOLDER or CREATE_FOLDER modes, return TRUE if something is
        selected.
index 6dd015e8d2b894b5f6342787c4c513051632e95f..e28566c89f78d98402b411912b7334d40fa5247d 100644 (file)
@@ -1,3 +1,12 @@
+2004-11-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
+       do the popup-on-click handling for menubars.  (#159931, 
+       Søren Sandmann)
+       
+       * gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't 
+       handle popup delay if the submenu is already mapped.    
+
 Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkcellview.h: remove gtk_cell_view_set_cell_data() declaration.
@@ -8,7 +17,7 @@ Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkfilechooserdefault.c (trap_activate_cb): Don't handle
        Enter if we are in SELECT_FOLDER or CREATE_FOLDER actions.  This
-       lets us navigate thei file system more easily.
+       lets us navigate the file system more easily.
        (gtk_file_chooser_default_should_respond): If we are in
        SELECT_FOLDER or CREATE_FOLDER modes, return TRUE if something is
        selected.
index 6dd015e8d2b894b5f6342787c4c513051632e95f..e28566c89f78d98402b411912b7334d40fa5247d 100644 (file)
@@ -1,3 +1,12 @@
+2004-11-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
+       do the popup-on-click handling for menubars.  (#159931, 
+       Søren Sandmann)
+       
+       * gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't 
+       handle popup delay if the submenu is already mapped.    
+
 Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkcellview.h: remove gtk_cell_view_set_cell_data() declaration.
@@ -8,7 +17,7 @@ Mon Nov 29 16:56:33 2004  Manish Singh  <yosh@gimp.org>
 
        * gtk/gtkfilechooserdefault.c (trap_activate_cb): Don't handle
        Enter if we are in SELECT_FOLDER or CREATE_FOLDER actions.  This
-       lets us navigate thei file system more easily.
+       lets us navigate the file system more easily.
        (gtk_file_chooser_default_should_respond): If we are in
        SELECT_FOLDER or CREATE_FOLDER modes, return TRUE if something is
        selected.
index b1f25ffedc8ebf767c07569ef650f07ac8b873d9..9cff14b5c82975c96ed30d14e0387dd8f17e83fe 100644 (file)
@@ -838,13 +838,15 @@ gtk_real_menu_item_select (GtkItem *item)
 
   menu_item = GTK_MENU_ITEM (item);
 
-  if (menu_item->submenu)
+  if (menu_item->submenu &&
+      !GTK_WIDGET_MAPPED (menu_item->submenu))
     {
       gint popup_delay;
 
       if (menu_item->timer)
        {
          g_source_remove (menu_item->timer);
+         menu_item->timer = 0;
          popup_delay = 0;
        }
       else
index 0a740783680a1e001add9783c8dabe124e272656..4e1a664e198403446060c3462039625368b67024 100644 (file)
@@ -508,10 +508,15 @@ gtk_menu_shell_button_release (GtkWidget      *widget,
              _gtk_menu_item_is_selectable (menu_item))
            {
              if (GTK_MENU_ITEM (menu_item)->submenu == NULL)
-               gtk_menu_shell_activate_item (menu_shell, menu_item, TRUE);
-             else
-               gtk_menu_item_select (GTK_MENU_ITEM (menu_item));
-             return TRUE;
+               {
+                 gtk_menu_shell_activate_item (menu_shell, menu_item, TRUE);
+                 return TRUE;
+               }
+             else if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement != GTK_TOP_BOTTOM)
+               {
+                 gtk_menu_item_select (GTK_MENU_ITEM (menu_item));
+                 return TRUE;
+               }
            }
          else if (menu_item &&
                   !_gtk_menu_item_is_selectable (menu_item) &&